//
//  AppDelegate.swift
//  微博01
//
//  Created by 牛威 on 15/12/5.
//  Copyright © 2015年 牛威. All rights reserved.
//

import UIKit
import AFNetworking
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        //测试数据
        
//        print(UserAccountViewModel.sharedAccount.account)
        
        //设置导航栏的全局外观
        
       AFNetworkActivityIndicatorManager.sharedManager().enabled = true
        
        setupAppearence()
        
        //设置根控制器
        
        window = UIWindow(frame:UIScreen.mainScreen().bounds)
        
        window?.backgroundColor = UIColor.whiteColor()

        window?.rootViewController  = defaultRootVC

        window?.makeKeyAndVisible()
        
        NSNotificationCenter.defaultCenter().addObserverForName(
            WBChangeRootViewControllerNotification,//通知名称 通知中心用来识别通知的
            object: nil,                            //发送通知对象,如果为nil,监听任何对象
            queue: nil)                             //nil 主线程
            {[weak self] (notification) -> Void in  //通知和代理都是常驻的 所以为了防止循环引用 在这里加上weak 不加也可以
                
//                print(NSThread.currentThread())
//                print(notification)
                
                let vc = notification.object != nil ? NWWelcomeViewController() : NWTBViewController()
                
                self?.window?.rootViewController = vc
        }
        
        
        return true
    }
    
    
    deinit{
        
        //销毁指定通知 不销毁也没事 良好的代码习惯
    
      NSNotificationCenter.defaultCenter().removeObserver(self,//监听者
        name: WBChangeRootViewControllerNotification,          //监听的通知
        object: nil)                                           //发动通知的对象
    
    }
    
    
    
    //全局设置nav和tabbar的颜色的设置
    
    
    private func setupAppearence(){
       
        UINavigationBar.appearance().tintColor = WBAppearenceTintColor

        UITabBar.appearance().tintColor = WBAppearenceTintColor
        
    }
    
}

//MARK: - 界面切换

extension AppDelegate {
    
    //返回怎样的跟视图控制器
    
    var defaultRootVC : UIViewController {
    
        //已经登录
    
        if UserAccountViewModel.sharedAccount.isLogin {
        
        
            return isNewVersion ? NWNewFeatureViewController() : NWWelcomeViewController()
        
        }
        
        //没有登录
        
        return NWTBViewController()
    }
    

    //MARK: - 版本检测
    
    var isNewVersion : Bool {
    
        //1 取出当前版本
        
        let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
        
        let version = Double(currentVersion)!
        
//        print("当前版本\(version)")
        
        //2 取出之前版本 
        
        let versionKey = "versionKey"
        
        let backVersion = NSUserDefaults.standardUserDefaults().doubleForKey(versionKey)
        
//        print("之前版本\(backVersion)")
        
        //3 把当前版本保存到偏好设置中去
        
        NSUserDefaults.standardUserDefaults().setDouble(version, forKey: versionKey)
        
    
    
        return version > backVersion
    
     }
    
    
    //程序进入到后台调用的方法
    
    func applicationDidEnterBackground(application: UIApplication) {
      
        StatusDAL.clearDataCache()
        
    }


}

